//
//  NSDate+TimeManager.h
//  高仿暴走斗图
//
//  Created by huangsongyao on 16/3/7.
//  Copyright © 2016年 huangsongyao. All rights reserved.
//

#import <Foundation/Foundation.h>

#define D_MINUTE	60.0          //一分钟转化为秒
#define D_HOUR		3600.0        //一小时转化为秒
#define D_DAY		86400.0       //一天转化为秒
#define D_WEEK		604800.0      //一星期转化为秒
#define D_YEAR		31556926.0    //一年转化为秒（忽略闰年）

#define D_MMdd                  @"MM-dd"                    //月-日 格式
#define D_HHmm                  @"HH:mm"                    //时-分 格式
#define D_HHmmss                @"HH:mm:ss"                 //时-分-秒 格式
#define D_yyyyMMdd              @"yyyy-MM-dd"               //年-月-日 格式
#define D_yyyyMMddHHmm          @"yyyy-MM-dd HH:mm"         //年-月-日-时-分 格式
#define D_yyyyMMddHHmmss        @"yyyy-MM-dd HH:mm:ss"      //年-月-日-时-分-秒 格式

@interface NSDate (TimeManager)

/**
 *  单例，创建一个NSDateFormatter实例
 *
 *  @param string dateFormat
 *
 *  @return NSDateFormatter实例
 */
+ (NSDateFormatter *)formatterWithString:(NSString *)string;

/**
 *  某个时间转为“月-日 格式”的string
 *
 *  @return “月-日 格式”的string
 */
- (NSString *)stringMMddFromDate;

/**
 *  某个时间转为“时-分 格式”的string
 *
 *  @return “时-分 格式”的string
 */
- (NSString *)stringHHmmFromDate;

/**
 *  某个时间转为“时-分-秒 格式”的string
 *
 *  @return “时-分-秒 格式”的string
 */
- (NSString *)stringHHmmssFromDate;

/**
 *  某个时间转为“年-月-日 格式”的string
 *
 *  @return “年-月-日 格式”的string
 */
- (NSString *)stringyyyyMMddFromDate;

/**
 *  某个时间转为“年-月-日-时-分 格式”的string
 *
 *  @return “年-月-日-时-分 格式”的string
 */
- (NSString *)stringyyyyMMddHHmmFromDate;

/**
 *  某个时间转为“年-月-日-时-分-秒 格式”的string
 *
 *  @return “年-月-日-时-分-秒 格式”的string
 */
- (NSString *)stringyyyyMMddHHmmssFromDate;


/**
 *  某个时间字符串转为“月-日 格式”的时间
 *
 *  @param string “月-日 格式”的时间字符串
 *
 *  @return “月-日 格式”的时间
 */
+ (NSDate *)dateMMddFromString:(NSString *)string;

/**
 *  某个时间字符串转为“时-分 格式”的时间
 *
 *  @param string “时-分 格式”的时间字符串
 *
 *  @return “时-分 格式”的时间
 */
+ (NSDate *)dateHHmmFromgString:(NSString *)string;

/**
 *  某个时间字符串转为“时-分-秒 格式”的时间
 *
 *  @param string “时-分-秒 格式”的时间字符串
 *
 *  @return “时-分-秒 格式”的时间
 */
+ (NSDate *)dateHHmmssFromString:(NSString *)string;

/**
 *  某个时间字符串转为“年-月-日 格式”的时间
 *
 *  @param string “年-月-日 格式”的时间字符串
 *
 *  @return “年-月-日 格式”的时间
 */
+ (NSDate *)dateyyyyMMddFromString:(NSString *)string;

/**
 *  某个时间字符串转为“年-月-日-时-分 格式”的时间
 *
 *  @param string “年-月-日-时-分 格式”的时间字符串
 *
 *  @return “年-月-日-时-分 格式”的时间
 */
+ (NSDate *)dateyyyyMMddHHmmFromString:(NSString *)string;

/**
 *  某个时间字符串转为“年-月-日-时-分-秒 格式”的时间
 *
 *  @param string “年-月-日-时-分-秒 格式”的时间字符串
 *
 *  @return “年-月-日-时-分-秒 格式”的时间
 */
+ (NSDate *)dateyyyyMMddHHmmssFromString:(NSString *)string;

/**
 *  把某个时间转为“format”格式
 *
 *  @param format “format”格式
 *
 *  @return 时间字符串
 */
- (NSString *)customDateFormatterWithString:(NSString *)format;


/**
 *  过去多久了
 *
 *  @return 时间
 */
- (NSInteger)age;

/**
 *  用生日获取年纪
 *
 *  @param birthday 生日
 *
 *  @return 生日对应的年纪
 */
+ (NSInteger)ageWithBirthday:(NSDate *)birthday;

@end
